/** 当前登录的用户账号的租户信息模型 */
export interface BwUserTenantInfoModel {
  /** 租户ID */
  id: string

  /** 租户名称 */
  name: string

  /** 租户Logo */
  logoIcon: string
}

/** 当前登录的用户账号的租户信息模型 */
export interface BwStaffInfoModel {
  /** 当前登录人员ID */
  staffId: string

  /** 当前登录人员名称 */
  staffName: string
}

// 当前登录租户平台的用户部门身份信息模型
export type BwTenantUserDeptInfo = {
  /** 部门ID */
  deptId: Nullable<string>

  /** 部门编码 */
  deptCode: Nullable<string>

  /** 部门名称 */
  deptName: Nullable<string>

  /** 岗位ID */
  dutyId: Nullable<string>

  /** 岗位编码 */
  dutyCode: Nullable<string>

  /** 岗位名称 */
  dutyName: Nullable<string>
}

/** 当前登录的用户账号信息模型 */
export interface BwUserInfoModel {
  // 用户id
  id: number

  // 用户名
  name: Nullable<string>

  // 工号
  jobNum: Nullable<string>

  // 头像
  avatar: Nullable<string>

  // 首页
  homePath: Nullable<string>

  // 最后登陆IP
  lastLoginIp: Nullable<string>

  // 最后登陆时间
  lastLoginTime: Nullable<string>

  // 最后登陆地址
  lastLoginAddress: Nullable<string>

  // 最后登陆所用浏览器
  lastLoginBrowser: Nullable<string>

  // 最后登陆所用系统
  lastLoginOs: Nullable<string>

  // 部门身份信息
  depts: Nullable<Array<BwTenantUserDeptInfo>>

  // 当前租户信息
  curTenant: Nullable<BwUserTenantInfoModel>

  // 权限节点
  authNodes: Nullable<Array<string>>

  // 拓展信息
  extInfo: Nullable<string>
}

/** 当前用户信息状态管理模型 */
export interface BwUserStateModel {
  /** 当前登录 token 信息 */
  token: Nullable<string>

  /** 当前登录用户信息 */
  userInfo: Nullable<BwUserInfoModel>

  /** 当前租户列表 */
  tenantList: Nullable<Array<BwUserTenantInfoModel>>
}
